#ifndef __KEY_H
#define __KEY_H

extern bool up_short;
extern bool down_short;
extern uint8_t up_cnt, down_cnt;

// 控制按键时长
#define LONG_PRESS   100   // 20ms*100=2s
#define SHORT_PRESS  3     // 20ms*3=60ms
#define MID_PRESS    50    // 20ms*50=1s
#define REPEAT_PRESS 2     // 200ms*3=60ms,连按灵敏参数

// 各种模式
#define MODE_INIT          0x00  // 正常模式
#define MODE_OFFSET_BEGIN  0x01  // Sc
#define MODE_OFFSET_SET    0x02  // 设置误差
#define MODE_PID_BEGIN     0x05  // P
#define MODE_PID_SET       0x06  // 设置PID
#define MODE_ALERT_BEGIN   0x09  // AL 
#define MODE_ALERT_SET     0x0A  // 设置报警值
#define MODE_TI_BEGIN      0x0B  // TI
#define MODE_TI_SET        0x0C  // 设置自动关闭时间
#define MODE_PWM_BEGIN     0x0F  // PWM
#define MODE_PWM_SET       0x10  // 设置PWM初始值
#define MODE_SET_TEMP      0x20  // 设置加热温度值
#define MODE_LOCK_BEGIN    0x21  // Loc
#define MODE_LOCK_SET      0x22  // 设置锁定值范围
#define MODE_SHUTDOWN      0xFF  // 关闭加热模式
#define MODE_DEFAULT       0xF0  // 读取默认参数
#define MODE_OHM_BEGIN     0xF1  // 
#define MODE_OHM_SET       0xF2  // 设定电阻值

// 按键
#define KEY_PORT    (GPIOC)
#define KEY_SET     (GPIO_PIN_5)
#define KEY_UP      (GPIO_PIN_6)
#define KEY_DOWN    (GPIO_PIN_7)

// Key process
extern void key_init(void);
extern void key_proc_init(void);
extern void key_scan(void);


#endif

